﻿using System;

namespace Shuba.Model
{
    [Serializable]
    public class AlternateUMInfo
    {
        public AlternateUMInfo()
        { 
        }

        /// <summary>
        /// Info untuk mendapatkan field alternate UM
        /// </summary>
        public AlternateUMInfo(string BRANCH_ID,
            string NIP,
            string ALTERNATE_FOR,
            DateTime EFF_DATE_FROM,
            DateTime EFF_DATE_TO,
            string ENTRY_BY,
            DateTime ENTRY_DATE,
            string UPDATE_BY,
            DateTime UPDATE_DATE,
            string IS_ACTIVE)
        {
            this.BRANCH_ID = BRANCH_ID;
            this.NIP = NIP;
            this.ALTERNATE_FOR = ALTERNATE_FOR;
            this.EFF_DATE_FROM = EFF_DATE_FROM;
            this.EFF_DATE_TO = EFF_DATE_TO;
            this.ENTRY_BY = ENTRY_BY;
            this.ENTRY_DATE = ENTRY_DATE;
            this.UPDATE_BY = UPDATE_BY;
            this.UPDATE_DATE = UPDATE_DATE;
            this.IS_ACTIVE = IS_ACTIVE;
        }

        /// <summary>
        /// Info untuk mendapatkan field alternate UM tmp TAMBAHAN ALTENATE FOR, EFF FROM, EFF TO
        /// </summary>
        public AlternateUMInfo(string BRANCH_ID,
            string NIP,
            string ALTERNATE_FOR,
            DateTime EFF_DATE_FROM,
            DateTime EFF_DATE_TO,
            string ENTRY_BY,
            DateTime ENTRY_DATE,
            string UPDATE_BY,
            DateTime UPDATE_DATE,
            string ACT_TYPE,
            string IS_ACTIVE,
            string BRANCH_ID_ORIG,
            string NIP_ORIG,
            string ALTERNATE_FOR_ORIG,
            DateTime EFF_DATE_FROM_ORIG,
            DateTime EFF_DATE_TO_ORIG)
        {
            this.BRANCH_ID = BRANCH_ID;
            this.NIP = NIP;
            this.ALTERNATE_FOR = ALTERNATE_FOR;
            this.EFF_DATE_FROM = EFF_DATE_FROM;
            this.EFF_DATE_TO = EFF_DATE_TO;
            this.ENTRY_BY = ENTRY_BY;
            this.ENTRY_DATE = ENTRY_DATE;
            this.UPDATE_BY = UPDATE_BY;
            this.UPDATE_DATE = UPDATE_DATE;
            this.ACT_TYPE = ACT_TYPE;
            this.IS_ACTIVE = IS_ACTIVE;
            this.BRANCH_ID_ORIG = BRANCH_ID_ORIG;
            this.NIP_ORIG = NIP_ORIG;
            this.ALTERNATE_FOR_ORIG = ALTERNATE_FOR_ORIG;
            this.EFF_DATE_FROM_ORIG = EFF_DATE_FROM_ORIG;
            this.EFF_DATE_TO_ORIG = EFF_DATE_TO_ORIG;
        }

        public AlternateUMInfo(string BRANCH_ID,
            string NIP,
            string IS_ACTIVE)
        {
            this.BRANCH_ID = BRANCH_ID;
            this.NIP = NIP;
            this.IS_ACTIVE = IS_ACTIVE;
           
        }

        /// <summary>
        /// Info untuk mendapatkan field alternate UM tmp
        /// </summary>
        public AlternateUMInfo(string BRANCH_ID,
            string NIP,
            string ALTERNATE_FOR,
            DateTime EFF_DATE_FROM,
            DateTime EFF_DATE_TO,
            string ENTRY_BY,
            DateTime ENTRY_DATE,
            string UPDATE_BY,
            DateTime UPDATE_DATE,
            string ACT_TYPE,
            string IS_ACTIVE,
            string BRANCH_ID_ORIG,
            string NIP_ORIG)
        {
            this.BRANCH_ID = BRANCH_ID;
            this.NIP = NIP;
            this.ALTERNATE_FOR = ALTERNATE_FOR;
            this.EFF_DATE_FROM = EFF_DATE_FROM;
            this.EFF_DATE_TO = EFF_DATE_TO;
            this.ENTRY_BY = ENTRY_BY;
            this.ENTRY_DATE = ENTRY_DATE;
            this.UPDATE_BY = UPDATE_BY;
            this.UPDATE_DATE = UPDATE_DATE;
            this.ACT_TYPE = ACT_TYPE;
            this.IS_ACTIVE = IS_ACTIVE;
            this.BRANCH_ID_ORIG = BRANCH_ID_ORIG;
            this.NIP_ORIG = NIP_ORIG;
        }

        /// <summary>
        /// Info untuk mendapatkan alternate UM list
        /// </summary>
        public AlternateUMInfo(string BRANCH_ID, 
            string BRANCH_NAME,    
            string NIP,
            string USER_NAME,
            string ALTERNATE_FOR,
            DateTime EFF_DATE_FROM,
            DateTime EFF_DATE_TO,
            string ENTRY_BY,
            DateTime ENTRY_DATE,
            string UPDATE_BY,
            DateTime UPDATE_DATE,
            string IS_ACTIVE)
        {
            this.BRANCH_ID = BRANCH_ID;
            this.BRANCH_NAME = BRANCH_NAME;
            this.NIP = NIP;
            this.USER_NAME = USER_NAME;
            this.ALTERNATE_FOR = ALTERNATE_FOR;
            this.EFF_DATE_FROM = EFF_DATE_FROM;
            this.EFF_DATE_TO = EFF_DATE_TO;
            this.ENTRY_BY = ENTRY_BY;
            this.ENTRY_DATE = ENTRY_DATE;
            this.UPDATE_BY = UPDATE_BY;
            this.UPDATE_DATE = UPDATE_DATE;
            this.IS_ACTIVE = IS_ACTIVE;
        }

        /// <summary>
        /// Info untuk mendapatkan alternate UM list tmp
        /// </summary>
        public AlternateUMInfo(string BRANCH_ID,
            string BRANCH_NAME,
            string NIP,
            string USER_NAME,
            string ALTERNATE_FOR,
            DateTime EFF_DATE_FROM,
            DateTime EFF_DATE_TO,
            string ENTRY_BY,
            DateTime ENTRY_DATE,
            string UPDATE_BY,
            DateTime UPDATE_DATE,
            string ACT_TYPE,
            string IS_ACTIVE,
            string BRANCH_ID_ORIG,
            string NIP_ORIG)
        {
            this.BRANCH_ID = BRANCH_ID;
            this.BRANCH_NAME = BRANCH_NAME;
            this.NIP = NIP;
            this.USER_NAME = USER_NAME;
            this.ALTERNATE_FOR = ALTERNATE_FOR;
            this.EFF_DATE_FROM = EFF_DATE_FROM;
            this.EFF_DATE_TO = EFF_DATE_TO;
            this.ENTRY_BY = ENTRY_BY;
            this.ENTRY_DATE = ENTRY_DATE;
            this.UPDATE_BY = UPDATE_BY;
            this.UPDATE_DATE = UPDATE_DATE;
            this.ACT_TYPE = ACT_TYPE;
            this.IS_ACTIVE = IS_ACTIVE;
            this.BRANCH_ID_ORIG = BRANCH_ID_ORIG;
            this.NIP_ORIG = NIP_ORIG;
        }

        /// <summary>
        /// Info untuk mendapatkan alternate UM list tmp TAMBAHAN ALTERNATE FOR, EFF FROM, EFF TO
        /// </summary>
        public AlternateUMInfo(string BRANCH_ID,
            string BRANCH_NAME,
            string NIP,
            string USER_NAME,
            string ALTERNATE_FOR,
            DateTime EFF_DATE_FROM,
            DateTime EFF_DATE_TO,
            string ENTRY_BY,
            DateTime ENTRY_DATE,
            string UPDATE_BY,
            DateTime UPDATE_DATE,
            string ACT_TYPE,
            string IS_ACTIVE,
            string BRANCH_ID_ORIG,
            string NIP_ORIG,
            string ALTERNATE_FOR_ORIG,
            DateTime EFF_DATE_FROM_ORIG,
            DateTime EFF_DATE_TO_ORIG)
        {
            this.BRANCH_ID = BRANCH_ID;
            this.BRANCH_NAME = BRANCH_NAME;
            this.NIP = NIP;
            this.USER_NAME = USER_NAME;
            this.ALTERNATE_FOR = ALTERNATE_FOR;
            this.EFF_DATE_FROM = EFF_DATE_FROM;
            this.EFF_DATE_TO = EFF_DATE_TO;
            this.ENTRY_BY = ENTRY_BY;
            this.ENTRY_DATE = ENTRY_DATE;
            this.UPDATE_BY = UPDATE_BY;
            this.UPDATE_DATE = UPDATE_DATE;
            this.ACT_TYPE = ACT_TYPE;
            this.IS_ACTIVE = IS_ACTIVE;
            this.BRANCH_ID_ORIG = BRANCH_ID_ORIG;
            this.NIP_ORIG = NIP_ORIG;
            this.ALTERNATE_FOR_ORIG = ALTERNATE_FOR_ORIG;
            this.EFF_DATE_FROM_ORIG = EFF_DATE_FROM_ORIG;
            this.EFF_DATE_TO_ORIG = EFF_DATE_TO_ORIG;
        }

        public string BRANCH_ID { get; set; }
        public string BRANCH_NAME { get; set; }
        public string NIP { get; set; }
        public string USER_NAME { get; set; }
        public string ALTERNATE_FOR { get; set; }
        public DateTime EFF_DATE_FROM { get; set; }
        public DateTime EFF_DATE_TO { get; set; }

        public string ENTRY_BY { get; set; }

        private DateTime _ENTRY_DATE = DateTime.Now;
        public DateTime ENTRY_DATE
        {
            get { return _ENTRY_DATE; }
            set { _ENTRY_DATE = value; }
        }

        public string UPDATE_BY { get; set; }

        private DateTime _UPDATE_DATE = DateTime.Now;
        public DateTime UPDATE_DATE
        {
            get { return _UPDATE_DATE; }
            set { _UPDATE_DATE = value; }
        }

        public string ACT_TYPE { get; set; }
        public string IS_ACTIVE { get; set; }
        public string BRANCH_ID_ORIG { get; set; }
        public string NIP_ORIG { get; set; }
        public string ALTERNATE_FOR_ORIG { get; set; }
        public DateTime EFF_DATE_FROM_ORIG { get; set; }
        public DateTime EFF_DATE_TO_ORIG { get; set; }
    }
}
